package com.example.ordersystem.service;


import com.example.ordersystem.dao.CommentDAOByMybatis;
import com.example.ordersystem.domain.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CommentService {

    @Autowired
    CommentDAOByMybatis commentDAOByMybatis;

    /**
     * 查询所有的评价
     * @return 以列表形式返回所有评价信息
     */
    public List<Comment> findAllComments(){
        return commentDAOByMybatis.findAllComments();
    }

    /**
     * 查询所有的评价标签
     * @return 以列表形式返回所有标签信息
     */
    public List<Comment.Label> findAllLabels(){
        return commentDAOByMybatis.findAllLabels();
    }

    /**
     * 标签名加一
     * @param name 标签名
     * @return 更新一条数据库基本表记录
     */
    public void updateLabelByName(String name){
        commentDAOByMybatis.labelPlusOneByName(name);
    }

    /**
     * 插入一条评价
     * @param orderNum 订单编号
     * @param customerNum 顾客编号
     * @param grade 评价等级
     * @param content 评价内容
     * @return 评价编号
     */
    public int addComment(String orderNum, int customerNum, int grade, String content) {
        Comment comment = new Comment();
        comment.setCustomerNum(customerNum);
        comment.setGrade(grade);
        comment.setContent(content);
        comment.setOrderNum(orderNum);
        commentDAOByMybatis.addComment(comment);
        return comment.getNum();
    }

    /**
     * 根据评论编号更新评论配图
     * @param commentNum 评论编号
     * @param fileName 评论配图
     */
    public void updatePictureByNum(int commentNum, String fileName) {
        commentDAOByMybatis.updatePictureByNum(commentNum,fileName);
    }

    /**
     * 查询店铺整体评价
     * @return 评价评分
     */
    public int selectAverageGrade() {
        return commentDAOByMybatis.selectAverageGrade();
    }
}
